File: /home/sioberen/public_html/cache/includes/modals.php
<!-- Quantity Selection Modal -->
<div class="modal fade" id="quantityModal" tabindex="-1" role="dialog" aria-labelledby="quantityModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="quantityModalLabel">Select Quantity</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="modalQuantity">Quantity:</label>
<input type="number" class="form-control" id="modalQuantity" min="1" max="10" value="1">
</div>
<div class="alert alert-info">
<small>Maximum quantity available: <span id="maxQuantity">1</span></small>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" onclick="confirmQuantity()">Confirm</button>
</div>
</div>
</div>
</div>
<!-- Shipping Information Modal -->
<div class="modal fade" id="shippingModal" tabindex="-1" role="dialog" aria-labelledby="shippingModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="shippingModalLabel">Shipping Information</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h6>Shipping Rates</h6>
<table class="table table-striped">
<thead>
<tr>
<th>Order Amount</th>
<th>Shipping Fee</th>
<th>Handling Fee</th>
</tr>
</thead>
<tbody>
<tr>
<td>Under $99</td>
<td>$12.99</td>
<td>$24.00</td>
</tr>
<tr>
<td>$99 - $499</td>
<td>FREE</td>
<td>$24.00</td>
</tr>
<tr>
<td>$500 and above</td>
<td>FREE</td>
<td>FREE</td>
</tr>
</tbody>
</table>
<h6 class="mt-4">Delivery Time</h6>
<ul>
<li><strong>Standard Shipping:</strong> 5-7 business days</li>
<li><strong>Express Shipping:</strong> 2-3 business days (additional $15)</li>
<li><strong>Overnight Shipping:</strong> Next business day (additional $35)</li>
</ul>
<h6 class="mt-4">Available Regions</h6>
<p>We ship to all 50 US states, Canada, and select international destinations through our partner Neokyo.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Got it</button>
</div>
</div>
</div>
</div>
<!-- Size Guide Modal -->
<div class="modal fade" id="sizeGuideModal" tabindex="-1" role="dialog" aria-labelledby="sizeGuideModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="sizeGuideModalLabel">Product Size Guide</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6">
<h6>Pool Dimensions</h6>
<table class="table table-bordered">
<tr>
<td>Diameter</td>
<td>12 feet (3.66m)</td>
</tr>
<tr>
<td>Height</td>
<td>30 inches (76cm)</td>
</tr>
<tr>
<td>Water Capacity</td>
<td>1,718 gallons (6,500L)</td>
</tr>
<tr>
<td>Weight (Empty)</td>
<td>42 lbs (19kg)</td>
</tr>
</table>
</div>
<div class="col-md-6">
<h6>Space Requirements</h6>
<ul>
<li>Minimum area: 14 x 14 feet</li>
<li>Level ground required</li>
<li>Clear overhead space: 8 feet</li>
<li>Access to water source</li>
<li>Access to electrical outlet for pump</li>
</ul>
<h6 class="mt-3">Included Components</h6>
<ul>
<li>Metal frame pool</li>
<li>Filter pump (330 GPH)</li>
<li>Pool liner</li>
<li>Setup instructions</li>
</ul>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Error/Success Message Modal -->
<div class="modal fade" id="messageModal" tabindex="-1" role="dialog" aria-labelledby="messageModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="messageModalLabel">Message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="messageContent">
<!-- Dynamic content will be inserted here -->
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
<!-- Image Zoom Modal -->
<div class="modal fade" id="imageZoomModal" tabindex="-1" role="dialog" aria-labelledby="imageZoomModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="imageZoomModalLabel">Product Image</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body text-center">
<img id="zoomedImage" src="" alt="Product Image" class="img-fluid">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<script>
// Modal functions
function showMessage(title, content, type = 'info') {
document.getElementById('messageModalLabel').textContent = title;
var alertClass = 'alert-info';
if (type === 'success') alertClass = 'alert-success';
if (type === 'error') alertClass = 'alert-danger';
if (type === 'warning') alertClass = 'alert-warning';
document.getElementById('messageContent').innerHTML =
'<div class="alert ' + alertClass + '">' + content + '</div>';
$('#messageModal').modal('show');
}
function confirmQuantity() {
var quantity = document.getElementById('modalQuantity').value;
var mainQuantityInput = document.querySelector('.cart_count');
if (mainQuantityInput) {
mainQuantityInput.value = quantity;
}
$('#quantityModal').modal('hide');
}
function showShippingInfo() {
$('#shippingModal').modal('show');
}
function showSizeGuide() {
$('#sizeGuideModal').modal('show');
}
function showImageZoom(imageSrc) {
document.getElementById('zoomedImage').src = imageSrc;
$('#imageZoomModal').modal('show');
}
function showNeokyoBanner() {
$('#neokyoModal').modal('show');
}
// Auto-show Neokyo banner for international users (simulation)
document.addEventListener('DOMContentLoaded', function() {
// 模拟检测国际用户
setTimeout(function() {
var isInternational = Math.random() > 0.7; // 30% chance to show banner
if (isInternational) {
showNeokyoBanner();
}
}, 3000);
});
</script>
<style>
.modal-content {
border-radius: 8px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.modal-header {
background: #f8f9fa;
border-bottom: 1px solid #dee2e6;
border-radius: 8px 8px 0 0;
}
.modal-title {
font-weight: 600;
color: #333;
}
.modal-body {
padding: 20px;
}
.modal-footer {
background: #f8f9fa;
border-top: 1px solid #dee2e6;
border-radius: 0 0 8px 8px;
}
#zoomedImage {
max-width: 100%;
max-height: 80vh;
object-fit: contain;
}
.table th {
background: #f8f9fa;
font-weight: 600;
}
.alert {
margin-bottom: 0;
}
#modalQuantity {
width: 100px;
display: inline-block;
}
.neokyo-features {
background: #f8f9fa;
padding: 15px;
border-radius: 5px;
margin: 15px 0;
}
.neokyo-features h6 {
color: #007bff;
margin-bottom: 10px;
}
.neokyo-features ul {
margin-bottom: 0;
}
</style>